/*
 * ConvergenceFailedException.cs
 * 
 * Copyright (c) 2006, dnAnalytics. All rights reserved.
*/
using System;
using System.Runtime.Serialization;
using dnAnalytics.Exceptions;

namespace dnAnalytics.Exceptions
{
    /// <summary>
    /// An algorithm failed to converge.
    /// </summary>
    [Serializable()]
    public class ConvergenceFailedException : dnAnalyticsException
    {
        ///<summary>Initializes a new instance of the <b>ConvergenceFailedException</b> class.</summary>
        public ConvergenceFailedException() : base() { }

        ///<summary>Initializes a new instance of the <b>ConvergenceFailedException</b> class with a specified error message.</summary>
        ///<param name="message">The error message that explains the reason for the exception.</param>
        public ConvergenceFailedException(String message) : base(message) { }

        ///<summary>Initializes a new instance of the <b>ConvergenceFailedException</b> class with a specified error message 
        ///and a reference to the inner exception that is the cause of this exception.</summary>
        ///<param name="message">The error message that explains the reason for the exception.</param>
        ///<param name="inner">The exception that is the cause of the current exception. 
        ///If the innerException parameter is not a null reference, the current exception is raised in a <b>catch</b> block 
        ///that handles the inner exception.</param>
        public ConvergenceFailedException(String message, System.Exception inner) : base(message, inner) { }

        ///<summary>Initializes a new instance of the <b>ConvergenceFailedException</b> class with serialized data.</summary>
        ///<param name="info">The error message that explains the reason for the exception.</param>
        ///<param name="context">The error message that explains the reason for the exception.</param>
        protected ConvergenceFailedException(SerializationInfo info, StreamingContext context) : base(info, context) { }
    }
}
